1. Technical Field
The present disclosure relates to a correlation method of an optical navigation device, in particular, to a parallel correlation method for an optical navigation device and a correlation apparatus using the same.
2. Description of Related Art
Optical navigation devices (such as optical mouse) operate by constantly tracking the relative displacement and velocity of the optical device using a plurality of sequentially captured images. A conventional navigation method of optical navigation devices uses a laser-generated light that reflects off a working surface to a light detector. The light detector includes, for example, a complementary metal-oxide semiconductor (CMOS) image sensor array. The reflection of the light produces a pattern of speckle that is captured by the CMOS image sensor array. As the optical navigation device is moved across the working surface or as the working surface is moved past the optical navigation device, successive images are rapidly captured and compared to determine the amount of displacement based on the location of the pattern of speckle.
Correlation technique has been often adopted in optical navigation method for aligning similar features between successive images i.e., a reference image and an input image (e.g., a compare image) captured sequent to the reference image, so as to determine the relative motion (e.g., the relative displacement and direction) of the optical navigation device with respect to the working surface. Specifically, the correlation technique compares and correlates the reference image and the compare image on a pixel by pixel basis using a two-dimensional cross-correlation.
Currently, the correlation technique is commonly implement by serial correlation algorithm, in which the compare image is fixed in position while the reference image is repeatedly shifted pixel by pixel within a predefined size of search window (such as 3×3 or 5×5 search window). Under serial correlation architecture, each column of the correlation window are sequentially computed through repeatedly correlating the pixel of the reference image tagged in the row with the corresponding pixel of the compare image until all the rows within the search window has been correlated. Subsequently, a peak correlation value or a least correlation value is determined from the correlation result depend upon the correlation function adopted to identify the feature (i.e., the light pattern) in the compare image and compute the displacement information therefrom.
As known to those skilled in the art, any image captured by the optical navigation device is first filtered and stored in the memory. Thus, in process of computing each column of the correlation window under serial correlation architecture, the corresponding pixels of the reference image and the compare image are constantly fetched from memory and then correlated. For instance, at least 25 times correlations must be processed before obtaining a correlation result for a 5×5 search window, and the memory therefore is accessed 25 times for acquiring the associated correlation data. Moreover, the calculation for next column doesn't start until the previous column has been computed.
Accordingly, there is quite amount of computational time (i.e., several clock cycles) required in each tracking operation for computing the displacement of the optical navigation device after capturing an image, of which much of the computation time are used in preparing the associated correlation data from memory. The computational time required herein also increase with the size of the search window i.e., the larger the search window the longer computational time, which draws limitations to the tradeoffs between accuracy and the tracking speed. Additionally, when the optical navigation device operates at high frame rate, latency might be generated and affect the overall tracking performance of the optical navigation device.